|
MSP2807 by Legato
タッチ式オーディオプレーヤ
|
|
2021.11.21 PIC情報交換会資料 |
|
YS電子工作デザイン http://www.ys-labo.com/ 斎藤 |
|
YS電子工作ショップ http://ys-labo.shop-pro.jp/ |
1. |
概要 |
|
1.1 要約
・PIC32MZによるグラフィック液晶MSP2807をもちいたタッチパネル式オーディオプレーヤ
・VS1053Bの内臓デコーダにより、MP3、WMA、AAC、Ogg、WAVなどのファイルが再生可能
・SDカードに収納されているサブフォルダを含む全ファイルを再生
・Tera Termに、SDカード内の全ファイル、及び演奏中のファイルを表示
・グラフィック液晶への表示 及び操作
① SDカード内の全ファイル名をリスト表示。 尚、ファイルはフルパスで表示
② リストのファイル名をタッチすることによって選曲、再生開始
③ スライダーウィジェットのノブのドラッグによる音量調整
④ ボタンタッチによる再生(再開) 及び再生一時停止操作
|
 |
|
1.2. システム構成
 |
2. |
外観
|
3. |
回路図(→PDFファイル)
|
4.
|
開発環境
・ Harmony ver.3 MHC 3.8.0 グラフィックライブラリ: Legato コンパイラ:XC32 ver.3.01
・ PIC: PIC32MZ2048EFH100
|
5. |
動作結果 |
|
1. 動画 → YouTube (1080pのHD動画)
2.. 画面抜粋
2.1 演奏ファイル選択のリスト画面
起動時の画面 |
タッチで別の曲を選択して演奏している画面 |
スクロールして最後のアイテム(ファイル)が表示されている画面 |
 |
 |
 |
2.2 音量変更画面
スライドバーのノブ付近をドラッグして音量を変更する |
 |
2.3 再生(再開)/一時停止操作
ボタンウィジェットをタッチする毎に、再生(再開)モードと一時停止モードが変更となる。
ボタンにタッチしていない状態 |
ボタンにタッチしている状態 |
 |
 |
3. Tera Termログ
|
6. |
プログラムの作成プロセス 及び内容 |
|
1. Project Viewに所要のコンポーネントを配置、及び結線をおこない、各コンポーネントの諸元を設定する。
2. MSP2807、VS1053B、キャラクタ液晶SC1602などのライブラリ関数をプロジェクトに追加する。
|
 |
3. Legato Graphic Composer で スクリーンに Listウィジェット、Sliderウィジェット、Buttonウィジェットを配置した後、 Schemeマネージャから色調、Assetマネージャからフォント、文字列などのオブジェクトを作成しながら各ウィジェットのプロパティを設定する。
4. プロジェクトファイルのソースコードを生成する。
|
 |
5. 全体の流れ
・ main.cファイル内
int main ( void )
{
SYS_Initialize ( NULL );
while ( true )
{
SYS_Tasks ( );
}
return ( EXIT_FAILURE );
}
・ tasks.cファイル内
void SYS_Tasks (void)
{
SYS_FS_Tasks( ); //ファイルシステム
RV_SDSPI_Tasks(sysObj.drvSDSPI0); //デバイスドライバー
DRV_ExternalController_Update(); //グラフィックハードウェアドライバーなど
ys_DRV_TOUCH_MSP2807(); //タッチ検出、タッチ種類、タッチ位置をシステムに注入
Legato_Tasks(); //グラフィックライブラリLegato //液晶画面アップデート
//ウィジェットのイベント検出(演奏曲変更、音量ノブ位置、再生再開/一時停止)
SYS_INP_Tasks(); //タッチシステム
APP_Tasks(); //アプリケーション
}
・ app.cファイル内
void APP_Tasks (void)
{
switch ( appData.state )
{
case APP_STATE_INIT: //初期化
…… break;
case APP_STATE_WAIT_FOR_DEVICE_ATTACH : //SDカード挿入確認
…… break;
case APP_STATE_DISK_SCANNING : //SDカードスキャン、ファイルテーブル作成
…… break;
case APP_STATE_OPEN_FILE : //再生ファイルオープン
…… break;
case APP_STATE_SEND_DATA : //再生実行、VS1053へ音声データ送信、
…… break; //再生ファイル変更検出
case APP_STATE_NEXT_FILE : //次の再生ファイル分岐判断
…… break;
case APP_STATE_IDLE ; //アイドル状態、再生一時停止の場合など
…… break;
}
}
|
main.c
tasks.c
app.c |
6. スクリーンを制御する主な関数があるファイル le_gen_screen_Screen0.c
leResult screenInit_Screen0(void); // スクリーン初期化
leResult screenShow_Screen0(void); // スクリーン表示
void screenUpdate_Screen0(void); // スクリーンアップデート、ファイルリスト追加
void event_Screen0_PlayPauseBtn_OnPressed(leButtonWidget* btn);
//再生開始/一時停止ボタンが押された時のイベント関数
void event_Screen0_ListWidget0_OnSelectionChanged(leListWidget* wgt, uint32_t idx, leBool selected);
//リストのアイテムが変更になった時のイベント関数
void event_Screen0_SliderWidget0_OnValueChanged(leSliderWidget* scr);
//スライダーの値が変更になった時のイベント関数
|

le_gen_screen_Screen0.c |
7. その他
・ 動的文字列(dynamic text) ……参考技術情報(WiKi) →URL
・ 所要関数の探索(例)…… Listウィジェット、 legato_widget_list.c、 フルパス: "C:\HarmonyPrj\_Wk_v3X\Hp_v3X\20 gfx380\41h 2807player fixed\firmware\src\config\default\gfx\legato\widget\list\legato_widget_list.c" |
|
|
|
|
|
|
|
|
|
7. |
参考 |
|
1. YS電子工作ラボHP での紹介/プロジェクトファイル |
|
|
PIC32MZ Harmony v3版 |
→ URL |
|
|
|
|
|
|
|
|